package com.example.daibanshiwu.controller;

import com.example.daibanshiwu.Service.GroupService;
import com.example.daibanshiwu.pojo.Group;
import com.example.daibanshiwu.pojo.Result;
import com.example.daibanshiwu.pojo.SimpleGroupDTO;
import com.example.daibanshiwu.pojo.TUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@CrossOrigin(origins = "http://localhost:5173")
@RestController
@RequestMapping("/group")
public class GroupController {
    @Autowired
    private GroupService groupService;

    //获取当前分组的所有信息
    @GetMapping("/getAllGroup")
    List<Group> getAllGroup(){
        return groupService.getGroupMembers();
    }

    //删除分组
    @PostMapping("/delete")
    public Result deleteGroups(@RequestBody List<String> groupIds) {
        groupService.deleteGroups(groupIds);
        return Result.success("批量删除成功");
    }

    //新建分组搜索可添加的成员
//    @GetMapping("/getAllUser")
//    List<TUser> getAllUser(@RequestParam("name") String name){
//        return groupService.findAllUser(name);
//    }
    @GetMapping("/getAllUser")
    List<TUser> getAllUser(){
        return groupService.findAllUser();
    }

    //通过多个子分组寻找组员（用户）
    @PostMapping("/searchUserById")
    public ResponseEntity<List<TUser>> getUsersByGroupIds(@RequestBody List<String> groupIds) {
        // ⑤ 【核心业务逻辑】

        // 1. 调用Service层处理业务
        List<TUser> users = groupService.findUsersByGroupIds(groupIds);

        // 2. 将结果包装成HTTP响应返回
        // ResponseEntity.ok() 会创建一个状态码为 200 (OK) 的响应
        return ResponseEntity.ok(users);
    }

        //更新小组状态
    @PostMapping("/updateStatus") // 也可以是 @PutMapping
    public ResponseEntity<String> updateStatus(
            @RequestParam("groupId") String groupId,
            @RequestParam("newStatus") String newStatus) {

        // 调用Service层
        int b=groupService.updateGroupStatus(groupId, newStatus);
        System.out.println(b);
        // 返回成功响应
        return ResponseEntity.ok("小组状态更新成功！");
    }
        //新建分组
        @PostMapping("/addGroup") // 也可以是 @PutMapping
        public ResponseEntity<String> addGroup(@RequestBody Group group) {
            System.out.println("进入了Controller方法");
            // 调用Service层
            int a=groupService.addGroup(group);
            System.out.println(a);
            // 返回成功响应
            return ResponseEntity.ok("小组添加成功！");
        }

    @GetMapping("/getTestGroups")
    public List<SimpleGroupDTO> getTestGroups() {
        return groupService.getSimpleGroups();
    }
}

